package com.probox.activity.api.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.probox.common.core.annotation.Excel;
import com.probox.common.core.enums.FrequencyEnum;
import com.probox.common.core.enums.LotteryShowEnum;
import com.probox.common.core.utils.StringUtils;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * @author hds
 */
@Data
@ApiModel(description="抽奖活动")
public class LotteryInfoVo implements Serializable {

    private static final long serialVersionUID = 1L;

    private Long lotteryUid;
    /** 平台ID */
    @Excel(name = "平台ID")
    @ApiModelProperty(value = "平台ID(平台ID)")
    private Long platformUid;

    /** 活动标题 */
    @Excel(name = "活动标题")
    @ApiModelProperty(value = "活动标题(活动标题)")
    private String lotteryTitle;

    /** 活动封面图 */
    @Excel(name = "活动封面图")
    @ApiModelProperty(value = "活动封面图(活动封面图)")
    private String lotteryImg;

    /** 轮盘数量 */
    @Excel(name = "轮盘数量")
    @ApiModelProperty(value = "轮盘数量(轮盘数量)")
    private Integer lotteryNumber;

    /** 抽奖次数 */
    @Excel(name = "抽奖次数")
    @ApiModelProperty(value = "抽奖次数(抽奖次数)")
    private Long lotteryLimit;

    /** 活动开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "活动开始时间" , width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "活动开始时间(活动开始时间)")
    private Date lotteryStarttime;

    /** 活动结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "活动结束时间" , width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "活动结束时间(活动结束时间)")
    private Date lotteryEndtime;

    /** 抽奖周期 (day每天一次,all无限制) */
    @Excel(name = "抽奖周期 (day每天一次,all无限制)")
    @ApiModelProperty(value = "抽奖周期 (day每天一次,all无限制)(抽奖周期 (day每天一次,all无限制))")
    private String lotteryFrequency;

    /** 抽奖所消耗的积分 */
    @Excel(name = "抽奖所消耗的积分")
    @ApiModelProperty(value = "抽奖所消耗的积分(抽奖所消耗的积分)")
    private Long lotteryFate;

    /** 抽奖活动详情描述图片 */
    @Excel(name = "抽奖活动详情描述图片")
    @ApiModelProperty(value = "抽奖活动详情描述图片(抽奖活动详情描述图片)")
    private String lotteryRemarkImg;

    /** 中奖名单是否显示(0不显示1显示) */
    @Excel(name = "中奖名单是否显示(0不显示1显示)")
    @ApiModelProperty(value = "中奖名单是否显示(0不显示1显示)(中奖名单是否显示(0不显示1显示))")
    private String lotteryShow;

    /** 抽奖活动的状态 1有效，0无效，-1删除 */
    @Excel(name = "抽奖活动的状态 1有效，0无效，-1删除")
    @ApiModelProperty(value = "抽奖活动的状态 1有效，0无效，-1删除(抽奖活动的状态 1有效，0无效，-1删除)")
    private String lotteryStatus;

    /** 活动描述 */
    @Excel(name = "活动描述")
    @ApiModelProperty(value = "活动描述(活动描述)")
    private String lotteryText;

    /** 创建人 */
    @Excel(name = "创建人")
    @ApiModelProperty(value = "创建人(创建人)")
    private Long lotteryCreateuser;

    /** 创建人名称 */
    @Excel(name = "创建人名称")
    @ApiModelProperty(value = "创建人名称(创建人名称)")
    private String lotteryCreatename;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "创建时间" , width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "创建时间(创建时间)")
    private Date lotteryCreatetime;

    /** 修改人 */
    @Excel(name = "修改人")
    @ApiModelProperty(value = "修改人(修改人)")
    private Long lotteryUpdateuser;

    /** 修改人名称 */
    @Excel(name = "修改人名称")
    @ApiModelProperty(value = "修改人名称(修改人名称)")
    private String lotteryUpdatename;

    /** 修改时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "修改时间" , width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "修改时间(修改时间)")
    private Date lotteryUpdatetime;

    /**
     * 奖品信息
     */
    private List<LotteryDetailVo> detailList;

    public String getLotteryFrequencyName(){
        return FrequencyEnum.getNameByKey(lotteryFrequency);
    }

    public String getLotteryShowName(){
        return LotteryShowEnum.getNameByKey(lotteryShow);
    }

    public String getImgUrlOne() {
        if(!StringUtils.isEmpty(lotteryImg)){
            String[] split = lotteryImg.split(",");
            return split[0];
        }
        return "";
    }


    /**
     * 活动类型选中状态
     */
    public String getCheckType(){
        if(lotteryFate!=null && lotteryFate>0){
            return "1";
        }
        return "0";
    }

    /**
     * 参与次数选中状态
     */
    public String getCheckNum(){
        if(FrequencyEnum.all.getKey().equals(lotteryFrequency)){
            return "0";
        }else if(FrequencyEnum.day.getKey().equals(lotteryFrequency)){
            return "1";
        }
        return "";
    }

}
